草庐IT

Java Event-Dispatching Thread 解释

全部标签

javascript - 如何在Node.js中解释和执行异步javascript?

最近,我一直在对Node.js的核心进行大量研究,并且对Node平台的内部运作存在一些疑问。据我了解,Node.js的工作方式如下:Node有一个用Javascript编写的API,它使程序员可以与文件系统和网络之类的东西进行交互。但是,所有这些功能实际上都是由C/C++代码(也是Node的一部分)完成的。这是事情变得有些模糊的地方。因此,ChromeV8引擎的工作就是将javascript向下“编译”(解释?)为机器代码。V8是用C++编写的,而Javascript语言本身是由ECMA指定的,因此诸如关键字和语言功能之类的内容都由它们定义。这使我想到了最初的几个问题:由于节点绑定(b

c++ - 将有符号解释为无符号

我有这样的值(value):int64_ts_val=SOME_SIGNED_VALUE;我怎样才能得到一个uint64_tu_val与s_val具有完全相同的位模式,但被视为无符号?这可能真的很简单,但是在查看Stackoverflow和其他地方之后,我还没有找到答案。 最佳答案 int64_ts_val=SOME_SIGNED_VALUE;uint64_tu_val=static_cast(s_val);C++标准4.7/2规定:Ifthedestinationtypeisunsigned,theresultingvalueis

c++ - 请解释使用 std::ignore 的代码

我正在阅读关于std::ignore的文档来自cppreference。我发现很难掌握这个对象的真正目的,并且示例代码并不能很好地做到这一点。例如,在下面的代码中,inserted如何以及为什么设置为true?这对我来说没有多大意义。#include#include#include#includeintmain(){std::setset_of_str;boolinserted;std::tie(std::ignore,inserted)=set_of_str.insert("Test");if(inserted){std::cout如果有人可以向我解释代码,将不胜感激。谢谢。

c++ - 带有 SSE2 的 Newton Raphson - 有人可以解释一下这 3 行吗

我正在阅读此文档:http://software.intel.com/en-us/articles/interactive-ray-tracing我偶然发现了这三行代码:TheSIMDversionisalreadyquiteabitfaster,butwecandobetter.Intelhasaddedafast1/sqrt(x)functiontotheSSE2instructionset.Theonlydrawbackisthatitsprecisionislimited.Weneedtheprecision,sowerefineitusingNewton-Rhapson:__

C++ <算法> 实现解释

当我想知道如何实现C++标准库中的算法时,我总是看http://en.cppreference.com/w/cpp/algorithm,这是一个很好的来源。但有时我不理解一些实现细节,我需要一些解释为什么会以这种特定方式完成某些事情。例如在std::copy_n的实现中,为什么第一个赋值是在循环之外进行的,因此循环以1开始?templateOutputItcopy_n(InputItfirst,Sizecount,OutputItresult){if(count>0){*result++=*first;for(Sizei=1;i另外:您知道解释可能的算法实现的网站吗?

c++ - 将 int 重新解释为 float 的最有效的标准兼容方式

假设我保证float是IEEE754二进制32。给定一个对应于有效float的位模式,存储在std::uint32_t,如何将其重新解释为float以最有效的标准兼容方式?floatreinterpret_as_float(std::uint32_tui){return/*applysorcerytoui*/;}我有几种方法我知道/怀疑/假设有一些问题:通过reinterpret_cast,floatreinterpret_as_float(std::uint32_tui){returnreinterpret_cast(ui);}或等效floatreinterpret_as_float

c++ - 如何在不违反类型别名规则的情况下解释消息负载?

我的程序通过网络接收消息。这些消息被一些中间件反序列化(即我无​​法更改的其他人的代码)。我的程序接收到如下所示的对象:structMessage{intmsg_type;std::vectorpayload;};通过检查msg_type,我可以确定消息负载实际上是一个uint16_t值数组。我想在没有不必要的拷贝的情况下读取该数组。我的第一个想法是这样做:constuint16_t*a=reinterpret_cast(msg.payload.data());但是从a读取似乎违反了标准。这是第3.10.10条:Ifaprogramattemptstoaccessthestoredva

c++ - C++ FAQ的不安全宏解释?

AccordingtotheC++FAQ,macrosareevil:[9.5]WhyshouldIuseinlinefunctionsinsteadofplainold#definemacros?Because#definemacrosareevilin4differentways:evil#1,evil#2,evil#3,andevil#4.Sometimesyoushouldusethemanyway,butthey'restillevil.Unlike#definemacros,inlinefunctionsavoidinfamousmacroerrorssinceinline

c++ - 如何将 Node.js 解释器嵌入到 C/C++ 中?

我想在我的C/C++应用程序中使用Node.js脚本。有人建议我从v8、libev和libeio开始;但这意味着从头开始重写Node.js。那么,是否可以将Node.js嵌入到C或C++中? 最佳答案 您应该首先考虑将应用程序实现为Node的C++模块是否足够,然后将主要部分粘贴为Node脚本。否则你不妨“重新实现Node”,以核心代码为例,删除您不需要的部分(例如HTTP模块),然后放置您的组件进去。最不痛苦的方法是进行子树合并并剥离构建系统,然后在构建脚本中添加前缀以指向它所在的目录。然后,您可以停止构建某些部分。然而Node的

c++ - 如何向无所不知的新手解释未定义的行为?

在少数情况下,C++标准将其归为未定义行为。例如,如果我使用new[]进行分配,然后尝试使用未定义行为的delete(不是delete[])释放-anythingcanhappen-它可能会起作用,它可能会严重崩溃,它可能会默默地破坏某些东西并造成定时问题。向新手解释这个任何事情都可能发生部分是很成问题的。他们开始“证明”“这有效”(因为它确实适用于他们使用的C++实现)并询问“这可能有什么问题”?我能给出什么简洁的解释来激励他们不写这样的代码? 最佳答案 未定义意味着明确不可靠。软件应该是可靠的。你应该不必多说。结冰的池塘是不确定